<?php
namespace Admin\Controller;

use Think\Controller;
// 供应商控制器 by chenheyou
class ModuleinstanceController extends BaseController
{
    // 2016.4.14 by chenheyou
    public function index()
    {
        // 获得模块id
        $moduleId = I("get.moduleId");
        $this->assign('moduleId', $moduleId);

        /**************************创建权限*******************************/
        $User = session('User');
        if(M("Module")
            ->where('id='.$moduleId.' and (1<>1'.
                ''.' or createrightuser='.$User[id].            //人力资源
                ''.' or createrightdep='.$User[depid].          //部门
                ''.' or createrightall=1'.                      //所有人
                ' )')
            ->find()){
            $this->assign('canCreate',1);
        }
        /**************************创建权限*******************************/
        
        
        // 根据模块id获得表单id
        // 拿表的字段信息
        $Module = M('Module');
        $Module->where('id=' . $moduleId)->find();
        $formid = $Module->formid;
        $this->assign('fieldNameList', M('Formfield')->where('formid=' . $formid)->order('id asc')
            ->select());
        
        $a = M('Form');
        $a->where('id=' . $formid)->find();
        $object = M($a->formname);
        import('ORG.Util.Page'); // Page类的引入
        $count = $object->where($where)
            ->where("moduleId=" . $moduleId)
            ->count(); // 获取符合条件的数据总数count
        $Page = new \Org\Util\Page($count, 10); // 实例化page类，传入数据总数和每页显示10条内容
        $show = $Page->show();
        $list = $object->where($where)
            ->field('bs_'.$a->formname.'.*,b.nickname as bs_uname,b.id as bs_uid')
		    ->join('LEFT JOIN bs_User b ON bs_'.$a->formname.'.creater = b.id')
		    ->join('LEFT JOIN bs_module m ON bs_'.$a->formname.'.moduleId = m.id')
            ->limit($Page->firstRow . ',' . $Page->listRows)
        /**************************查询权限*******************************/
            ->where('moduleId=' . $moduleId.' and m.id='.$moduleId.' and (1<>1'.
                ''.' or m.showrightcreater=1 and bs_'.$a->formname.'.creater='.$User[id].     //创建人
                ''.' or m.showrightcreaterpid=1 and b.pid='.$User[id].               //创建人上级
                ''.' or m.showrightcreaterdep=1 and b.depid='.$User[depid].       //创建人部门
                ''.' or m.showrightuser='.$User[id].                              //人力资源
                ''.' or m.showrightdep='.$User[depid].                            //部门
                ''.' or m.showrightall=1'.                                        //所有人
                ' )')
        /**************************查询权限*******************************/
            ->select();
        //echo $object->getLastSql();
        //dump($object->_sql());
        $this->assign('list', $list);
        $this->assign("page", $show);
        $this->display();
    }
    
    // 2016.4.14 by chenheyou
    public function editUI()
    {
        // 找表字段信息
        // 获得模块id
        $moduleId = I("get.moduleId");

        /**************************创建权限*******************************/
        $User = session('User');
        if(M("Module")
            ->where('id='.$moduleId.' and (1<>1'.
                ''.' or createrightuser='.$User[id].            //人力资源
                ''.' or createrightdep='.$User[depid].          //部门
                ''.' or createrightall=1'.                      //所有人
                ' )')
            ->find()){
            $this->assign('canCreate',1);
        }else{
            $this->display('Help:noright');
        }
        /**************************创建权限*******************************/
        
        $this->assign('moduleId', $moduleId);
        $this->assign('id', $moduleId);
        echo $moduleId . '************<br>';
        // 根据模块id获得表单id
        // $formid = M('Module')->where('id='.$moduleId)->find();
        $Module = M('Module');
        $Module->where('id=' . $moduleId)->find();
        $formid = $Module->formid;
        // 拿表的字段信息
        $this->assign('fieldNameList', M('Formfield')->where('formid=' . $formid)->order('id asc')
            ->select());
        if (I('get.id')) {
            $Form = M('Form');
            $Form->where('id=' . $formid)->find();
            $this->assign('object', M($Form->formname)->where('id=' . I('get.id'))
                ->find());
        }
        
        $this->display('editUI');
    }
    
    // 2016.4.14 by chenheyou
    public function editOperation()
    {
        // 获得模块id
        $id = I('post.id');
        $moduleId = I('post.moduleId');
        // 根据模块id获得表单信息
        $Module = M('Module');
        $Module->where('id=' . $moduleId)->find();
        $formid = $Module->formid;
        dump($Module->_sql());
        echo $formid . '---<br>';
        // 根据表单id获得表单实例
        $Form = M('Form');
        $Form->where('id=' . $formid)->find();
        // 根据表单id获得字段列表
        // $FieldList = M('Formfield')->where('formid='.$formid)->select();
        
        $Object = M($Form->formname);
        $Object->create();
        // $Object -> moduleId = $moduleId;
        
        echo '$Form->formname:' . $Form->formname . '<br>';
        echo $Object->b . '<br>';
        echo $Object->c . '<br>';
        echo $Object->moduleId . '<br>';
        $User = session('User');
        $Object->creater = $User[id];
        
        if ($id) {
            // 修改
            if ($Object->save()) {
                $this->success('修改成功', U('index') . "?moduleId=" . $moduleId);
            } else {
                dump($Object->_sql());
                $this->error('修改失败');
            }
        } else {
            // 增加
            if ($Object->add()) {
                $this->success('添加成功', U('index') . "?moduleId=" . $moduleId);
            } else {
                dump($Object->_sql());
                $this->error('添加失败');
            }
        }
    }
    
    // 2016.4.14 by chenheyou
    public function removeOperation()
    {
        // 获得模块id
        $moduleId = I('get.moduleId');
        // 根据模块id获得表单信息
        $Module = M('Module');
        $Module->where('id=' . $moduleId)->find();
        $formid = $Module->formid;
        // 根据表单id获得表单实例
        $Form = M('Form');
        $Form->where('id=' . $formid)->find();
        
        // 获取表单的POST数据
        $Object = M($Form->formname); // 实例化User对象
        $id = I('get.id');
        if ($Object->delete($id)) {
            $this->success('删除成功', U('index') . "?moduleId=" . $moduleId);
        } else {
            dump($Object->_sql());
            $this->error('删除失败');
        }
    }
}